﻿using System;
using System.Windows.Forms;
using Company.Interface.KDT.GC;
using Company.BLL.KDT.GC;
using Janus.Windows.GridEX;
using Company.BLL;
using Company.BLL.KDT;
namespace Company.Interface.KDT.GC
{
    public partial class HopDongEditForm : BaseForm
    {
        private NhomSanPhamCollection nhomSPCollection;
        private NguyenPhuLieuCollection nguyenPLCollection;
        private SanPhamCollection sanphamCollection;
        private ThietBiCollection thietbiCollection;
        private PhuKienDangKyCollection pkdkCollection;
        public HopDong hopdong = new HopDong();
        public HopDongEditForm()
        {
            InitializeComponent();
            nhomSPCollection = new NhomSanPhamCollection();
            nguyenPLCollection = new NguyenPhuLieuCollection();
            sanphamCollection = new SanPhamCollection();
            thietbiCollection = new ThietBiCollection();
        }

        private void HopDongEditForm_Load(object sender, EventArgs e)
        {
            try
            {
                HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                if (hopdong.ID > 0)
                {
                    hopdong = HopDong.Load(hopdong.ID);
                    if (hopdong.SoTiepNhan > 0)
                        txtSoTiepNhan.Text = hopdong.SoTiepNhan.ToString();
                    txtSoHopDong.Text = hopdong.SoHopDong;
                    donViHaiQuanControl1.Ma = hopdong.MaHaiQuan;
                    ccNgayKetThucHD.Value = hopdong.NgayHetHan;
                    ccNgayKyHD.Value = hopdong.NgayKy;
                    nuocHControl1.Ma = hopdong.NuocThue_ID;
                    nguyenTeControl1.Ma = hopdong.NguyenTe_ID;
                    if (hopdong.NgayGiaHan.Year == 1900)
                    {
                        ccNgayGiaHan.Text = "";
                    }
                    nhomSPCollection = NhomSanPham.SelectCollectionBy_HopDong_ID(hopdong.ID);
                    nguyenPLCollection = NguyenPhuLieu.SelectCollectionBy_HopDong_ID(hopdong.ID);
                    sanphamCollection = SanPham.SelectCollectionBy_HopDong_ID(hopdong.ID);
                    thietbiCollection = ThietBi.SelectCollectionBy_HopDong_ID(hopdong.ID);
                    pkdkCollection = PhuKienDangKy.SelectCollectionBy_HopDong_IDANDSoPhuKienANDNgayPhuKien(hopdong.ID);
                    donViHaiQuanControl1.Ma = hopdong.MaHaiQuan;
                    if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
                    {
                        cmdAdd1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                        cmdSave1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                        HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                        NhanDuLieuHD1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                        dgNguyenPhuLieu.AllowDelete = Janus.Windows.GridEX.InheritableBoolean.False;
                        dgNhomSanPham.AllowDelete = Janus.Windows.GridEX.InheritableBoolean.False;
                        dgThietBi.AllowDelete = Janus.Windows.GridEX.InheritableBoolean.False;
                        dgSanPham.AllowDelete = Janus.Windows.GridEX.InheritableBoolean.False;
                        lblTrangThai.Text = "Đã duyệt";
                    }
                    else if (hopdong.TrangThaiXuLy == TrangThaiXuLy.CHO_DUYET)
                    {
                        lblTrangThai.Text = "Chờ duyệt";
                        HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.True;
                    }
                    else
                    {
                        HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                        NhanDuLieuHD1.Enabled = Janus.Windows.UI.InheritableBoolean.False;                     
                    }
                }
                dgNhomSanPham.DataSource = nhomSPCollection;
                dgNguyenPhuLieu.DataSource = nguyenPLCollection;
                dgSanPham.DataSource = sanphamCollection;
                dgThietBi.DataSource = thietbiCollection;
                dgPhuKien.DataSource = pkdkCollection;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

     
        private void tabHopDong_SelectedTabChanged(object sender, Janus.Windows.UI.Tab.TabEventArgs e)
        {
            string lblstatus = lblTrangThai.Text;
            int selectIndexTab = tabHopDong.SelectedIndex;
            //if (lblstatus == "Chưa gửi thông tin" && selectIndexTab != 0)
            //{
            //    MessageBox.Show("Hợp đồng chưa được tiếp nhận", "Thêm Hàng", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    tabHopDong.SelectedIndex = 0;
            //    return;
            //}            
            switch (tabHopDong.SelectedTab.Name)
            {
                case "tpNhomSanPham":
                    cmdAdd1.Text = "Thêm nhóm sản phẩm";
                    cmdAdd1.ToolTipText = "Thêm nhóm sản phẩm (Ctrl + N)";
                    break;
                case "tpNguyenPhuLieu":
                    cmdAdd1.Text = "Thêm nguyên phụ liệu";
                    cmdAdd1.ToolTipText = "Thêm nguyên phụ liệu (Ctrl + N)";
                    break;
                case "tpSanPham":
                    cmdAdd1.Text = "Thêm sản phẩm";
                    cmdAdd1.ToolTipText = "Thêm sản phẩm (Ctrl + N)";
                    break;
                case "tpThietBi":
                    cmdAdd1.Text = "Thêm thiết bị";
                    cmdAdd1.ToolTipText = "Thêm thiết bị (Ctrl + N)";
                    break;
                case "tpPhuKien":
                    //if (lblstatus == "Đã duyệt chính thức")
                    {
                        cmdAdd1.Enabled = Janus.Windows.UI.InheritableBoolean.True;
                        cmdAdd1.Text = "Thêm phụ kiện";
                        cmdAdd1.ToolTipText = "Thêm phụ kiện (Ctrl + N)";
                    }
                    //else
                    //{
                    //    MessageBox.Show("Hợp đồng chưa được duyệt chính thức", "Thêm Hàng", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //    tabHopDong.SelectedIndex = 0;
                    //}
                    break;

            }
        }

        private void cmMain_CommandClick(object sender, Janus.Windows.UI.CommandBars.CommandEventArgs e)
        {
            switch (e.Command.Key)
            {
                case "cmdAddLoaiSanPham":
                    switch (tabHopDong.SelectedTab.Name)
                    {
                        case "tpNhomSanPham":
                            showFormLoaiSanPham();
                            break;
                        case "tpNguyenPhuLieu":
                            showFormNguyenPhuLieu();
                            break;
                        case "tpSanPham":
                            showFormSanPham();
                            break;
                        case "tpThietBi":
                            showFormThietBi();
                            break;
                        case "tpPhuKien":
                            showFormPhuKien();
                            break;
                    }
                    break;
                case "cmdSave":
                    save();
                    break;
                case "cmdSend":
                    send(); break;
                case "HuyKhaiBao":
                    Huy();
                    break;
                case "NhanDuLieuHD":
                    NhanDuLieuHD12();
                    break;
            }
        }
        public void NhanDuLieuHD12()
        {
            if (hopdong.ID == 0)
            {
                ShowMessage("Hợp đồng chưa được lưu trữ", false);
                return;
            }
            //if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            //{
            //    ShowMessage("Hợp đồng đã được duyệt", false);
            //    return;
            //}
            else if (hopdong.TrangThaiXuLy == TrangThaiXuLy.CHUA_KHAI_BAO)
            {
                ShowMessage("Hợp đồng chưa được khai báo", false);
                return;
            }
            WSForm wsForm = new WSForm();
            wsForm.ShowDialog(this);
            if (!wsForm.IsReady) return;
            try
            {
                this.Cursor = Cursors.WaitCursor;
                hopdong.WSRequest();
                this.Cursor = Cursors.Default;
                nhomSPCollection = NhomSanPham.SelectCollectionBy_HopDong_ID(hopdong.ID);
                nguyenPLCollection = NguyenPhuLieu.SelectCollectionBy_HopDong_ID(hopdong.ID);
                sanphamCollection = SanPham.SelectCollectionBy_HopDong_ID(hopdong.ID);
                thietbiCollection = ThietBi.SelectCollectionBy_HopDong_ID(hopdong.ID);
                if (hopdong.TrangThaiXuLy == 1)
                {
                    txtSoTiepNhan.Text = hopdong.SoTiepNhan.ToString();
                    lblTrangThai.Text = "Đã duyệt";
                    cmdAdd1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                    cmdSave1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                    HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                    NhanDuLieuHD1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                    ShowMessage("Hợp đồng đã được duyệt", false);
                }
                else
                    ShowMessage("Hợp đồng chưa được duyệt", false);
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;
                if (ex.Message == "1")
                    ShowMessage("Hợp đồng này đã được duyệt chính thức trên hải quan", false);
                else
                {
                    if (ShowMessage("Có lỗi khi thực hiện. Bạn có muốn đưa vào hàng đợi không" + ex.Message, true) == "Yes")
                    {
                        HangDoi hd = new HangDoi();
                        hd.ID = hopdong.ID;
                        hd.LoaiToKhai = LoaiToKhai.HOP_DONG;
                        hd.TrangThai = hopdong.TrangThaiXuLy;
                        hd.ChucNang = ChucNang.NHAN_THONG_TIN;
                        MainForm.AddToQueueForm(hd);
                        MainForm.ShowQueueForm();
                    }
                }
            }
        }
        public void Huy()
        {                    
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã được duyệt", false);
                return;
            }
            WSForm wsForm = new WSForm();
            wsForm.ShowDialog(this);
            if (!wsForm.IsReady) return;
            try
            {
                this.Cursor = Cursors.WaitCursor;
                hopdong.WSCancel();
                txtSoTiepNhan.Text = hopdong.SoTiepNhan.ToString();
                lblTrangThai.Text = "Chưa khai báo";
                this.Cursor = Cursors.Default;
                HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.False;
                NhanDuLieuHD1.Enabled = Janus.Windows.UI.InheritableBoolean.False;                     
                ShowMessage("Đã hủy thành công", false);
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;
                if (ex.Message == "1")
                    ShowMessage("Hợp đồng này đã được duyệt chính thức trên hải quan", false);
                else
                {
                    if (ShowMessage("Có lỗi khi thực hiện. Bạn có muốn đưa vào hàng đợi không" + ex.Message, true) == "Yes")
                    {
                        HangDoi hd = new HangDoi();
                        hd.ID = hopdong.ID;
                        hd.LoaiToKhai = LoaiToKhai.HOP_DONG;
                        hd.TrangThai = hopdong.TrangThaiXuLy;
                        hd.ChucNang = ChucNang.HUY_KHAI_BAO;
                        MainForm.AddToQueueForm(hd);
                        MainForm.ShowQueueForm();
                    }
                }
            }
        }
        public void send()
        {
            if (hopdong.ID == 0)
            {
                ShowMessage("Phải lưu trữ hợp đồng trước", false);
                return;
            }
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã được duyệt", false);
                return;
            }
            WSForm wsForm = new WSForm();
            wsForm.ShowDialog(this);
            if (!wsForm.IsReady) return;
            try
            {
                this.Cursor = Cursors.WaitCursor;
                hopdong.WSSend();
                txtSoTiepNhan.Text = hopdong.SoTiepNhan.ToString();
                lblTrangThai.Text = "Chờ duyệt";                
                NhanDuLieuHD1.Enabled = Janus.Windows.UI.InheritableBoolean.True;                     
                HuyKhaiBao1.Enabled = Janus.Windows.UI.InheritableBoolean.True;
                this.Cursor = Cursors.Default;
                ShowMessage("Đã gửi thành công. Số tiếp nhận của bạn là " + txtSoTiepNhan.Text, false);
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;
                if (ex.Message == "1")
                    ShowMessage("Hợp đồng này đã được duyệt chính thức trên hải quan", false);
                else
                {
                    if (ShowMessage("Có lỗi khi thực hiện. Bạn có muốn đưa vào hàng đợi không" + ex.Message, true) == "Yes")
                    {
                        HangDoi hd = new HangDoi();
                        hd.ID = hopdong.ID;
                        hd.LoaiToKhai = LoaiToKhai.HOP_DONG;
                        hd.TrangThai = hopdong.TrangThaiXuLy;
                        hd.ChucNang = ChucNang.KHAI_BAO;
                        MainForm.AddToQueueForm(hd);
                        MainForm.ShowQueueForm();
                    }
                }
            }
            //Company.BLL.DuLieuChuan.NhomSanPham nhom = new Company.BLL.DuLieuChuan.NhomSanPham();
            //nhom.WSGetAll();
        }
        private void save()
        {
            try
            {
                
            cvError.Validate();
            if (!cvError.IsValid) return;
            if (ccNgayKyHD.Value > ccNgayKetThucHD.Value)
            {
                error.SetError(ccNgayKetThucHD, "Ngày kết thúc phải lớn hơn ngày ký.");
                return;
            }
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã duyệt chính thức. Không được chỉnh sửa", false);
                return;
            }
            if ((hopdong.ID==0) && HopDong.Load(txtSoHopDong.Text.Trim()) != null)
            {
                ShowMessage("Đã có số hợp đồng này rồi", false);
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            if (hopdong.ID == 0)
            {
                hopdong.MaDoanhNghiep = GlobalSettings.MA_DON_VI;
                hopdong.MaHaiQuan = donViHaiQuanControl1.Ma;
                hopdong.TrangThaiXuLy = TrangThaiXuLy.CHUA_KHAI_BAO;
                hopdong.NgayGiaHan = new DateTime(1900, 1, 1);
                hopdong.NgayTiepNhan = new DateTime(1900, 1, 1);
            }
            hopdong.NgayHetHan = Convert.ToDateTime(ccNgayKetThucHD.Text);
            hopdong.NgayKy = Convert.ToDateTime(ccNgayKyHD.Text);
            hopdong.NguyenTe_ID = nguyenTeControl1.Ma;
            hopdong.NuocThue_ID = nuocHControl1.Ma;
            hopdong.SoHopDong = txtSoHopDong.Text.Trim();
           
            hopdong.NgayDangKy = ccNgayDangKy.Value;            
            if(hopdong.InsertUpdateHopDong(nguyenPLCollection, sanphamCollection, nhomSPCollection, thietbiCollection))
                ShowMessage("Đã cập nhật thành công", false);
            else
                ShowMessage("Có lỗi khi cập nhật", false);
        }
        catch (Exception ex)
        {
            ShowMessage("Có lỗi :" + ex.Message, false);
        }
        finally
        {
            this.Cursor = Cursors.Default;
        }
        }
        private void showForm(string formName)
        {
            System.Windows.Forms.Form f = null;
            switch (formName)
            {
                case "LoaiSanPhamGCEditForm":
                    f = new LoaiSanPhamGCEditForm();
                    f.ShowDialog();
                    break;
                case "NguyenPhuLieuGCEditForm":
                    f = new NguyenPhuLieuGCEditForm();
                    f.ShowDialog();
                    break;
                case "SanPhamGCEditForm":
                    f = new SanPhamGCEditForm();
                    f.ShowDialog();
                    break;
                case "ThietBiGCEditForm":
                    f = new ThietBiGCEditForm();
                    f.ShowDialog();
                    break;
                case "PhuKienGCEditForm":
                    f = new PhuKienGCSendForm();
                    f.MdiParent = this.ParentForm;
                    f.Show(); ;
                    break;
                //case "PhuKienGCEditForm":
                //    f = new PhuKienGCEditForm();
                //    f.Show();
                //    break;
            }
        }
        private void showFormLoaiSanPham()
        {
            LoaiSanPhamGCEditForm f = null;
            f = new LoaiSanPhamGCEditForm();
            f.hongdong = hopdong;
            f.nhomSPCollection = nhomSPCollection;
            f.ShowDialog();

            //if (f.isUpdate)
            //{
            //    nhomSPCollection = f.nhomSPCollection;
            //    dgNhomSanPham.DataSource = nhomSPCollection;
            //}
            //else
            {
                dgNhomSanPham.Refetch();
            }

        }
        private void showFormThietBi()
        {
            ThietBiGCEditForm f = null;
            f = new ThietBiGCEditForm();
            f.hongdong = hopdong;
            f.thietbiCollection = thietbiCollection;
            f.ShowDialog();

            //if (f.isUpdate)
            //{
            //    thietbiCollection = f.thietbiCollection;
            //    dgThietBi.DataSource = thietbiCollection;
            //}
            //else
            {
                dgThietBi.Refetch();
            }

        }
        private void showFormSanPham()
        {
            SanPhamGCEditForm f = null;
            f = new SanPhamGCEditForm();
            f.hongdong = hopdong;
            f.spCollection = sanphamCollection; ;
            f.nhomSP = nhomSPCollection;
            f.ShowDialog();
            //if (f.isUpdate)
            //{
            //    sanphamCollection = f.spCollection;
            //    //dgNhomSanPham.DataSource = nhomSPCollection;
            //    dgSanPham.DataSource = sanphamCollection;
            //}
            //else
                dgSanPham.Refetch();
        }
        private void showFormNguyenPhuLieu()
        {
            NguyenPhuLieuGCEditForm npl = new NguyenPhuLieuGCEditForm();
            npl.hongdong = hopdong;
            npl.nplCollection = nguyenPLCollection;
            npl.ShowDialog();
            //if (npl.isUpdate)
            //{
            //    nguyenPLCollection = npl.nplCollection;
            //    dgNguyenPhuLieu.DataSource = nguyenPLCollection;
            //}
            //else
            {
                dgNguyenPhuLieu.Refetch();
            }
        }
        private void showFormPhuKien()
        {
            if (hopdong.ID == 0)
            {
                ShowMessage("Phải lưu trữ hợp đồng trước",false);
                return;
            }
            Form[] forms = this.ParentForm.MdiChildren;
            for (int i = 0; i < forms.Length; i++)
            {
                if (forms[i].Name.ToString().Equals("ThemPK"+hopdong.ID))
                {
                    forms[i].Activate();
                    return;
                }
            }
            Company.Interface.KDT.GC.PhuKienGCSendForm pk = new Company.Interface.KDT.GC.PhuKienGCSendForm();
            pk.hopdong = hopdong;
            pk.phukien.HopDong_ID = hopdong.ID;
            pk.Name = "ThemPK"+hopdong.ID.ToString();
            pk.MdiParent = this.ParentForm; ;
            pk.Show();
          
        }
        private void dgNhomSanPham_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            LoaiSanPhamGCEditForm f = null;
            f = new LoaiSanPhamGCEditForm();
            f.hongdong = hopdong;
            f.nhomSPCollection = nhomSPCollection;
            NhomSanPham nhom = new NhomSanPham();
            nhom.MaSanPham = e.Row.Cells[2].Text;
            nhom.SoLuong = Convert.ToDecimal(e.Row.Cells[4].Text);
            nhom.GiaGiaCong = Convert.ToDecimal(e.Row.Cells[5].Text);
            nhom.STTHang = Convert.ToInt32(e.Row.Cells[1].Text);
            nhom.ID = (long)Convert.ToInt64(e.Row.Cells[6].Text);
            nhom.TenSanPham = e.Row.Cells[3].Text;
            f.nhom = nhom;
            f.isAdd = false;
            f.ShowDialog();

            //if (f.isUpdate)
            //{
            //    nhomSPCollection = f.nhomSPCollection;
            //    dgNhomSanPham.DataSource = nhomSPCollection;
            //}
            //else
            {
                dgNhomSanPham.Refetch();
            }
        }
        private void dgNhomSanPham_DeletingRecord_1(object sender, Janus.Windows.GridEX.RowActionCancelEventArgs e)
        {
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã duyệt chính thức. Không được chỉnh sửa", false);
                e.Cancel = true;
                return;
            }
            if (e.Row.RowType == RowType.Record)
            {

                if (ShowMessage("Bạn có muốn xóa nhóm sản phẩm này không?", true) == "Yes")
                {
                     NhomSanPham nhom = new NhomSanPham();
                     nhom.ID = (long)Convert.ToInt64(e.Row.Cells[6].Text);
                    if (sanphamCollection.Count > 0)
                    {
                        foreach (SanPham sp in sanphamCollection)
                        {
                            if (sp.NhomSanPham_ID == nhom.ID)
                            {
                                if (ShowMessage("Nhóm sản phẩm này còn liên quan tới sản phẩm khác.Bạn có muốn xóa không?", true) != "Yes")
                                {
                                    e.Cancel = true;
                                    return;
                                }
                                else
                                    break;
                            }
                        }
                    }
                       
                        if (nhom.ID > 0)
                        {                                                    
                            nhom.Delete();
                            sanphamCollection = SanPham.SelectCollectionBy_HopDong_ID(hopdong.ID);
                            dgSanPham.DataSource = sanphamCollection;
                        }
                 
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

        private void dgNguyenPhuLieu_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            if (e.Row.RowType == RowType.Record)
            {
                if (ShowMessage("Bạn có muốn xóa nguyên phụ liệu này không?", true) == "Yes")
                {
                    NguyenPhuLieu npl1 = new NguyenPhuLieu();
                    npl1.ID = (long)Convert.ToInt64(e.Row.Cells[1].Text);

                    if (npl1.ID > 0)
                    {
                        if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
                        {
                            ShowMessage("Hợp đồng đã duyệt chính thức. Không được chỉnh sửa", false);
                            e.Cancel = true;
                        }
                        else
                            npl1.Delete();

                    }
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

        private void dgNguyenPhuLieu_RowDoubleClick(object sender, RowActionEventArgs e)
        {
            NguyenPhuLieu npl = new NguyenPhuLieu();
            npl.Ma = e.Row.Cells[3].Text.Trim();
            npl.Ten = e.Row.Cells[4].Text.Trim();
            npl.MaHS = e.Row.Cells[5].Text.Trim();
            npl.DVT_ID = e.Row.Cells[6].Text.Trim();
            npl.SoLuongDangKy = Convert.ToDecimal(e.Row.Cells[8].Text);
            npl.STTHang = (int)Convert.ToDecimal(e.Row.Cells[2].Text);
            npl.ID = (long)Convert.ToDecimal(e.Row.Cells[1].Text);
            NguyenPhuLieuGCEditForm nplForm = new NguyenPhuLieuGCEditForm();
            nplForm.hongdong = hopdong;
            nplForm.nplCollection = nguyenPLCollection;
            nplForm.npl = npl;
            nplForm.isAdd = false;
            nplForm.ShowDialog();
            //if (nplForm.isUpdate)
            //{
            //    nguyenPLCollection = nplForm.nplCollection;
            //    dgNguyenPhuLieu.DataSource = nguyenPLCollection;
            //}
            //else
            {
                dgNguyenPhuLieu.Refetch();
            }
        }

        private void dgSanPham_LoadingRow(object sender, RowLoadEventArgs e)
        {
            e.Row.Cells[7].Text = this.DonViTinh_GetName(e.Row.Cells[6].Value).Trim();
            long id = (long)Convert.ToUInt64(e.Row.Cells[9].Value);
            e.Row.Cells[10].Text = NhomSanPham.Load(id).TenSanPham;        
        }

        private void dgSanPham_RowDoubleClick(object sender, RowActionEventArgs e)
        {
            SanPhamGCEditForm f = null;
            f = new SanPhamGCEditForm();
            SanPham SPDetail = new SanPham();
            SPDetail.STTHang = (int)Convert.ToDecimal(e.Row.Cells[2].Text);
            SPDetail.SoLuongDangKy = Convert.ToDecimal(e.Row.Cells[8].Text);
            SPDetail.MaHS = e.Row.Cells[5].Text.Trim();
            SPDetail.Ten = e.Row.Cells[4].Text.Trim();
            SPDetail.NhomSanPham_ID = (long)Convert.ToUInt64(e.Row.Cells[9].Text);
            SPDetail.DVT_ID = e.Row.Cells[6].Text.Trim();
            SPDetail.Ma = e.Row.Cells[3].Text.Trim();
            SPDetail.HopDong_ID = hopdong.ID;
            SPDetail.ID = (long)Convert.ToUInt64(e.Row.Cells[1].Text);
            f.isAdd = false;
            f.hongdong = hopdong;
            f.spCollection = sanphamCollection;
            f.SPDetail = SPDetail;
            f.ShowDialog();
            //if (f.isUpdate)
            //{
            //    sanphamCollection = f.spCollection;
            //    //dgNhomSanPham.DataSource = nhomSPCollection;
            //    dgSanPham.DataSource = sanphamCollection;
            //}
            //else
                dgSanPham.Refetch();
        }

        private void dgSanPham_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã duyệt chính thức. Không được chỉnh sửa", false);
                e.Cancel = true;
                return;
            }
            if (e.Row.RowType == RowType.Record)
            {
                if (ShowMessage("Bạn có muốn xóa sản phẩm này không?", true) == "Yes")
                {                    
                    SanPham sp1 = new SanPham();
                    sp1.ID = (long)Convert.ToInt64(e.Row.Cells[1].Text);
                    if (sp1.ID > 0)
                        sp1.Delete();
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

        private void dgThietBi_RowDoubleClick(object sender, RowActionEventArgs e)
        {
            ThietBi tbDetail = new ThietBi();
            tbDetail.Ma = e.Row.Cells[2].Text.Trim();
            tbDetail.Ten = e.Row.Cells[3].Text.Trim();
            tbDetail.MaHS = e.Row.Cells[4].Text.Trim();
            tbDetail.DVT_ID = e.Row.Cells[5].Text.Trim();
            tbDetail.NuocXX_ID = e.Row.Cells[11].Text.Trim();
            tbDetail.STTHang = Convert.ToInt32(e.Row.Cells[1].Text);
            tbDetail.SoLuongDangKy = Convert.ToDecimal(e.Row.Cells[7].Text);
            tbDetail.DonGia = Convert.ToDecimal(e.Row.Cells[8].Text);
            tbDetail.TriGia = Convert.ToDecimal(e.Row.Cells[9].Text);
            tbDetail.NguyenTe_ID = e.Row.Cells[10].Text.Trim();
            tbDetail.TinhTrang = e.Row.Cells[12].Text.Trim();
            tbDetail.ID = (long)Convert.ToInt64(e.Row.Cells[13].Text);
            tbDetail.HopDong_ID = hopdong.ID;

            ThietBiGCEditForm f = null;
            f = new ThietBiGCEditForm();
            f.isAdd = false;
            f.hongdong = hopdong;
            f.thietbiCollection = thietbiCollection;
            f.tbDetail = tbDetail;
            f.ShowDialog();

            //if (f.isUpdate)
            //{
            //    thietbiCollection = f.thietbiCollection;
            //    dgThietBi.DataSource = thietbiCollection;
            //}
            //else
            {
                dgThietBi.Refetch();
            }
        }

        private void dgThietBi_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            if (hopdong.TrangThaiXuLy == TrangThaiXuLy.DA_DUYET)
            {
                ShowMessage("Hợp đồng đã duyệt chính thức. Không được chỉnh sửa", false);
                e.Cancel = true;
                return;
            }
            if (e.Row.RowType == RowType.Record)
            {
                if (ShowMessage("Bạn có muốn xóa thiết bị này không?", true) == "Yes")
                {
                    ThietBi tb = new ThietBi();
                    tb.ID = (long)Convert.ToInt64(e.Row.Cells[13].Text);
                    if (tb.ID > 0)
                    {
                        tb.Delete();
                    }
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

        private void dgThietBi_LoadingRow(object sender, RowLoadEventArgs e)
        {
            e.Row.Cells[6].Text = this.DonViTinh_GetName(e.Row.Cells[5].Value).Trim();
            e.Row.Cells[14].Text = this.NguyenTe_GetName(e.Row.Cells[10].Value).Trim();
            e.Row.Cells[15].Text = this.Nuoc_GetName(e.Row.Cells[11].Value).Trim();
        }

        private void dgNguyenPhuLieu_LoadingRow(object sender, RowLoadEventArgs e)
        {
            e.Row.Cells[7].Text = this.DonViTinh_GetName(e.Row.Cells[6].Value).Trim();
        }

        private void dgPhuKien_LoadingRow(object sender, RowLoadEventArgs e)
        {
            //e.Row.Cells[2].Text = this.LoaiPhuKien_GetName(e.Row.Cells[1].Text);            
            string st=e.Row.Cells[4].Value.ToString();
            if (st == "-1")
                e.Row.Cells[4].Text = "Chưa khai báo";
            else if (st == "0")
                e.Row.Cells[4].Text = "Chưa duyệt";
            else if (st == "1")
                e.Row.Cells[4].Text = "Đã duyệt";
        }

        private void dgPhuKien_RowDoubleClick(object sender, RowActionEventArgs e)
        {
            if (hopdong.ID == 0)
            {
                ShowMessage("Phải lưu trữ hợp đồng trước", false);
                return;
            }            
            Form[] forms = this.ParentForm.MdiChildren;
            for (int i = 0; i < forms.Length; i++)
            {
                if (forms[i].Name.ToString().Equals("ThemPK" + e.Row.Cells[1].Text))
                {
                    forms[i].Activate();
                    return;
                }
            }
            Company.Interface.KDT.GC.PhuKienGCSendForm pk = new Company.Interface.KDT.GC.PhuKienGCSendForm();
            pk.hopdong = hopdong;
            pk.phukien.HopDong_ID = hopdong.ID;
            pk.phukien.SoPhuKien = e.Row.Cells[1].Text.Trim();
            pk.phukien.NgayPhuKien = Convert.ToDateTime(e.Row.Cells[2].Text);
            pk.Name = "ThemPK" + e.Row.Cells[1].Text.Trim();
            pk.MdiParent = this.ParentForm; ;
            pk.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 1; i <= 200; ++i)
            {
                NguyenPhuLieu npl = new NguyenPhuLieu();
                npl.Ma = nguyenPLCollection[0].Ma + i.ToString() + "1";
                npl.Ten = nguyenPLCollection[0].Ten + i.ToString();
                npl.HopDong_ID = nguyenPLCollection[0].HopDong_ID;
                npl.DVT_ID = nguyenPLCollection[0].DVT_ID;
                npl.MaHS = nguyenPLCollection[0].MaHS;
                npl.SoLuongDangKy = nguyenPLCollection[0].SoLuongDangKy;
                npl.STTHang = i;
                nguyenPLCollection.Add(npl);
            }
        }

        private void dgPhuKien_DeletingRecord(object sender, RowActionCancelEventArgs e)
        {
            string st=e.Row.Cells[4].Value.ToString();         
            if (st == "0")
            {
                ShowMessage("Phụ kiện này đã được gửi tới hải quan.Không được xóa ?",false);                
                e.Cancel=true;
            }
            else if (st == "1")
            {
                ShowMessage("Phụ kiện này đã được duyệt. Không được xóa",false);
                e.Cancel=true;
                return;
            }
            if(ShowMessage("Bạn có muốn xóa không ?",true)=="Yes")
            {
                string sophukien=e.Row.Cells[1].Text;
                DateTime ngayphukien=Convert.ToDateTime(e.Row.Cells[2].Value);
                PhuKienDangKyCollection pkDeleteCollecltion = PhuKienDangKy.SelectCollectionBy_HopDong_IDANDSoPhuKienANDNgayPhuKien(hopdong.ID, sophukien, ngayphukien);
                PhuKienDangKy pkDelete = new PhuKienDangKy();
                pkDelete.DeleteCollection(pkDeleteCollecltion);
            }
            else
                e.Cancel = true;
        }
    }
}
